﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace bi4homev3.Acceso_a_Datos
{
    #region Clase abstracta padre de los DAO

    //Clase creada de acuerdo al patron de DAO con Fabricas Abstractas

    public abstract class FabricaDAO
    {
        #region creacion de constantes de manejadores y metodos de interfaces
        //Lista de manejadores soportados. (Agregar aqui codigo para otros manejadores)
        public static int ORACLE = 1;

        //Metodos para crear las DAO finales. Habra un metodo por cada DAO
        public abstract  UsuarioDAO getUsuarioDAO();
        public abstract LocalDAO getLocalDAO();
        public abstract CompraDAO getCompraDAO();
        public abstract ReporteDAO getReporteDAO();
        public abstract MedidaDAO getMedidaDAO();
        public abstract ServicioDAO getServicioDAO();
        #endregion


        #region metodo de creacion de fabricas dao especificas de cada manejador
        //Constructor, para saber de que manejador se quiere la fabrica
        public static FabricaDAO getFabricaDAO(int cual) 
        {
  
            switch (cual) 
            {
                 case 1: 
                    return new FabricaOracleDAO();
                 default: 
                    return null;
            }
        }
        #endregion


    }
    #endregion
}
